package dao

import (
	"time"
)

// 这是 WebsiteSetting 的全局公开dao对象，被service层调用!
var (
	WebsiteSettingDao = websiteSettingDao{}
	WebsiteSet = WebsiteSetting{}

)

// 网站设置信息
// 这是 website_setting表 的实体类,这个实体类中的字段可以减少，但是不能在其基础上增加!
type WebsiteSetting struct {
	Id             int32     `json:"id" form:"id" db:"id" v:"id"`
	Name           string    `json:"name" form:"name" db:"name" v:"name"`                                             // 网站名称
	Domain         string    `json:"domain" form:"domain" db:"domain" v:"domain"`                                     // 网站域名
	OnlyHttps      int8      `json:"only_https" form:"only_https" db:"only_https" v:"only_https"`                     // 是否只支持HTTPS
	TitleSuffix    string    `json:"title_suffix" form:"title_suffix" db:"title_suffix" v:"title_suffix"`             // 标题后缀
	Favicon        string    `json:"favicon" form:"favicon" db:"favicon" v:"favicon"`                                 // 自定义favicon
	Logo           string    `json:"logo" form:"logo" db:"logo" v:"logo"`                                             // 自定义logo
	StartYear      int32     `json:"start_year" form:"start_year" db:"start_year" v:"start_year"`                     // 网站运营开始年份
	BlogUrl        string    `json:"blog_url" form:"blog_url" db:"blog_url" v:"blog_url"`                             // 独立博客url,没有则留空
	Slogan         string    `json:"slogan" form:"slogan" db:"slogan" v:"slogan"`                                     // 网站slogan,在页脚最后
	BeiAn          string    `json:"bei_an" form:"bei_an" db:"bei_an" v:"bei_an"`                                     // 网站备案信息
	ReadingMenu    string    `json:"reading_menu" form:"reading_menu" db:"reading_menu" v:"reading_menu"`             // 技术晨读菜单名,留空则用默认的
	DocsMenu       string    `json:"docs_menu" form:"docs_menu" db:"docs_menu" v:"docs_menu"`                         // 官方文档菜单,json格式,留空则用默认
	FooterNav      string    `json:"footer_nav" form:"footer_nav" db:"footer_nav" v:"footer_nav"`                     // 底部导航,json格式
	FriendLogo     string    `json:"friend_logo" form:"friend_logo" db:"friend_logo" v:"friend_logo"`                 // 底部友情logo,json格式
	ProjectDfLogo  string    `json:"project_df_logo" form:"project_df_logo" db:"project_df_logo" v:"project_df_logo"` // 开源项目默认logo
	SeoKeyword     string    `json:"seo_keyword" form:"seo_keyword" db:"seo_keyword" v:"seo_keyword"`                 // 页面seo,通用keyword
	SeoDescription string    `json:"seo_description" form:"seo_description" db:"seo_description" v:"seo_description"` // 页面seo,通用description
	IndexNav       string    `json:"index_nav" form:"index_nav" db:"index_nav" v:"index_nav"`                         // 首页顶部导航,json格式
	CreatedAt      time.Time `json:"created_at" form:"created_at" db:"created_at" v:"created_at"`                     // 创建时间
	UpdatedAt      time.Time `json:"updated_at" form:"updated_at" db:"updated_at" v:"updated_at"`                     // 最后更新时间

}

// 注意:这是 WebsiteSetting 的私有dao对象，只能在dao层内使用!
type websiteSettingDao struct {
	InsertTemplate func(arg WebsiteSetting) (int64, error) //插入一条记录
	UpdateTemplate func(arg WebsiteSetting) (int64, error) //更新一条记录
	DeleteTemplate func(id int64) (int64, error)           `arg:"id"` //根据传入的主键删除一条记录

	SelectTemplate func() ([]WebsiteSetting, error) `arg:"id"` //根据传入的主键获取一条记录
}

